package com.codi.bus.core.dao;

import com.codi.base.dao.BaseDAO;
import com.codi.bus.core.domain.User;
import com.codi.bus.core.domain.ext.UserExt;

import java.util.List;

public interface UserDao extends BaseDAO<User> {
    User add(User entity);
    void updateUser(User entity);
    User getEntity(Long userId);
    User getEntityByToken(String token);
    boolean isExistMobile(String mobile);

    void updateChinaTax(Long userId);

    boolean isExistCard(String idCard);
    User getEntityByMobile(String mobile);
    User getEntityByIDCard(String idCard);

    List<User> getInviteUserInfos(Integer pageIndex, Integer pageSize, Long userId);

    /**
     * 分页查询数据
     * @param pageIndex
     * @param pageSize
     * @param user
     * @return
     */
    List<User> queryList(Integer pageIndex, Integer pageSize, UserExt user);

    /**
     * 用户总数
     * @return
     * @param user
     */
    Integer queryListCount(UserExt user);

    List<User> getAllUser();

    /**
     * 更新用户系统消息个数
     */
    void updateAllUsersSysMessageCounts();

    void updateAllUsersSys();
}
